GetLocalPlayer, Нет, на гуях мемхака, вовсе исключён...
Так же мемхак нужно еще заставить работать, если ваши познания jass ниже среднего, а так же вам лень читать статьи по 10 страниц - эта наработка явно не для вас.
Дальше пришла в голову другая идея. Думаю, можно сделать с помощью ремонта зданий Альянса: на месте смерти героя создаётся здание с моделью креста со здоровьем 1/100 ед., а союзные герои ремонтируя крест будут повышать её здоровье, получается некая иллюзия прогресс бара. И если спрятать способность ремонта с помощью функции HideAbilityButton( ) из мемхака, то будет ли она срабатывать при нажатии на ПКМ? Также, как отловить момент полного ремонта здания? С помощью таймера проверять процент здоровья каждые доли секунды?
раскрыть
scope HeroRevive initializer Initialization
struct herorevive
private unit dyingUnit
private unit reincarnate
private real life
private thistype prev
private thistype next
public static constant trigger trig = CreateTrigger( )
public static constant timer period = CreateTimer( )
private static method iterate takes nothing returns nothing
local thistype this = thistype( 0 ).next
loop
exitwhen ( this == 0 )
if ( GetWidgetLife( this.reincarnate ) > this.life ) then
set this.life = GetWidgetLife( this.reincarnate )
elseif ( GetWidgetLife( this.reincarnate ) >= GetUnitState( this.reincarnate, UNIT_STATE_MAX_LIFE ) ) then
call ReviveHero( this.dyingUnit, GetUnitX( this.dyingUnit ), GetUnitY( this.dyingUnit ), true )
call RemoveUnit( this.reincarnate )
set this.reincarnate = null
set this.life = 0.0
set this.prev.next = this.next
set this.next.prev = this.prev
if ( thistype( 0 ).next == 0 ) then
call PauseTimer( thistype.period )
endif
call thistype.deallocate( this )
elseif ( GetWidgetLife( this.reincarnate ) <= this.life ) then
set this.life = 1.0
call SetWidgetLife( this.reincarnate, this.life )
endif
set this = this.next
endloop
endmethod
public static method actions takes nothing returns nothing
local thistype this = thistype.allocate( )
set this.next = 0
set this.prev = thistype( 0 ).prev
set this.next.prev = this
set this.prev.next = this
set this.dyingUnit = GetDyingUnit( )
set this.reincarnate = CreateUnit( GetOwningPlayer( this.dyingUnit ), 'h003', GetUnitX( this.dyingUnit ), GetUnitY( this.dyingUnit ), 0.0 )
set this.life = 1.0
call SetUnitPathing( this.reincarnate, false )
call SetWidgetLife( this.reincarnate, this.life )
if ( this.prev == 0 ) then
call TimerStart( thistype.period, 0.10, true, function thistype.iterate )
endif
endmethod
public static constant method conditions takes nothing returns boolean
return IsUnitType( GetDyingUnit( ), UNIT_TYPE_HERO )
endmethod
endstruct
public function Initialization takes nothing returns nothing
call TriggerRegisterPlayerUnitEvent( herorevive.trig, Player( 1 ), EVENT_PLAYER_UNIT_DEATH, null )
call TriggerRegisterPlayerUnitEvent( herorevive.trig, Player( 2 ), EVENT_PLAYER_UNIT_DEATH, null )
call TriggerRegisterPlayerUnitEvent( herorevive.trig, Player( 3 ), EVENT_PLAYER_UNIT_DEATH, null )
call TriggerRegisterPlayerUnitEvent( herorevive.trig, Player( 4 ), EVENT_PLAYER_UNIT_DEATH, null )
call TriggerAddCondition( herorevive.trig, Condition( function herorevive.conditions ) )
call TriggerAddAction( herorevive.trig, function herorevive.actions )
endfunction
endscope
Вот только если спрятать кнопку через HideAbilityButton( ), то способность ремонта зданий исчезает и не работает через ПКМ.
Разумеется можно, но лишь те у которых есть кулдаун индикатор, это перерождение и вроде абилка труповозки "эксгумация".
Так же желательно юзать новую функцию запуска в кд, некоторые абилки у меня баговали, целая тема была про это.
глобалки создаются вне функций, что в GUI невозможно. И глобалки, созданные таким образом, не отображаются в GUI
лучше вместо
set u = GetLastCreatedUnit()
писать
set u = bj_lastCreatedUnit
bj_lastCreatedUnit - глобальная переменная
никакого округления! при конвертации просто откидывается дробная часть. Если нужно округление, просто добавь к числу 0.5, а затем переводи в целочисленные
тут два способа
или иметь базу данных - бд - со всеми юнитами, их базовой атакой, статами, которые эту атаку уведичивают, книгами и кол-вом их применения, и всем прочим
от этой бд уже и пясать
или же в мемхак, считать значение, плясать от него
darkowlom, ну я сабжом расставил нужные текстуры. Из всего что пора пришло в голову только использовать триггер "Окружение" и в нужных местах областями ставить текстуры. Но это как муторно.. Вот и решил спросить можно ли обойти ограничения.
Это делается функциями GetTerrainType и SetTerrainType.
Рисуешь на тех же самых текстурах определенную допустим квадратную локацию.
Затем for стартовоеX до конечноеX внутри for СтартовоеY до КонечноеY если getterraintype = точтонадозаменить то setterraintype на другую текстуру.
Других адекватных методов нет. Триггер который ты привел использует локации (точки), а значит - это возня с точками - возможно утечки.
Я используя эти функ целиком всю карту стираю размера 256x256 и отрисовываю 10к тайлов, в одном проекте). Лаг если и есть во время перерисовки - то незаметный, не больше 0.5сек
Ну насчет первых двух вопросов не знаю. Не супер-пупер картодел. Но с последним - скачай вот это: xgm.guru/p/wc3/jassnewgenpack-exp это расширенный редактор, там можно и карту гиганта сделать и текстур добавить больше чем возможно, по моему до 16 штук, да и еще много чего, включая выключение огранки на декор и т.д. Когда запустиш через эту програмку редактор - появиться в верху дополнительные кнопочки. Нажимаеш на Extensions и в менюшке - Edit Tileset. И выбирай до 16 любых текстур... Вплоть до полной замены всех текстур карты. ..
Не важно, как будет называться кость. Главное, чтобы к ней были прикреплены все вершиныы.
Иногда встречаются модели и без костей вовсе, но они могут неправильно отображаться в самой игре или редакторе, так что лучше все же создать косточку)
Я тебе вот что скажу... Играю в Варик с 2006 года.
Короче ща перешёл в Гарену из-за того, что батл нете нельзя нормально хостить карту (там одни боты).
В общем: народу в гарене полно(комнаты почти всегда забыты по максимому). И что странно - половина из игроков - школьники... Откуда столько много школьников мне не понятно.
Но одно могу сказать точно - в Варик 3 играет больше народу, чем в Старкрафт 2. И будут играть ещё долго.
А я думал, что к 2010 году в варике 3 ТОЧНО никого не останется... Оказывается я жестко ошибался)
Что такое "назначить пользовательский параметр юнита или предмета" и как им пользоваться?
Используется для сохранения каких-нибудь своих данных в этот конкретный предмет или юнита
Добрые люди, как присвоить глобальной переменной (целочисленной) цену определенного предмета (так чтобы если изменить цену в редакторе объектов, то в редакторе триггеров она сама изменялась) или какая главная характеристика определенного героя (разум, сила, ловкость).
AntiMage, айсфрог больше не фаворит, не?
Создай их на карте изначально, потом удали при старте удали, время загрузки карты увеличится, зато не будет просадок фпс при выборе нового героя и так далее. Способности прелоадят с помощью preload, постепенно, как только появился герой которому нужны эти способности, то потихонечку подгружаются эффекты скиллов, создаются даммики которым по очереди с некоторым интервалов вручают по 1 скиллу героя + так же все вспомогательные дамми способности.
Fakov, насчёт фризов... Имеются ввиду фризы во время загрузки карты или же непосредственно в ходе игры? А нюансы, например, какие? Сама по себе система работает, главное, чтоб не фризило-крашило.
от большого кол-ва забитых массивов не должно лагать, т.к по сравнению с реальной нагрузкой - это копейки Свиборг:
UrsaBoss, я все эти переменные делал на гуи, не на жассе.
и учти, тебе придется сделать отдельный поток для инициализации твоих массивов, это чтобы исключить вероятность того, что завершится поток main из за лимита операций
Вот инструкция если ты не шаришь в jass:
На скриншоте 1, там где
call ExecuteFunc("Trig_MyTrig_Actions")
Это Custom Script, а MyTrig - это название нужного тебе триггера
На скриншоте 2 уже твой триггер с инициализацией массива, главное в событиях ничего не ставь
Чем вас не устраивает стандартная система здоровья и урона?
yep, зачем изобретать то что уже есть. Отнимай просто здоровье из реального здоровья, а считай урон из реального урона юнита. Все это сможешь настроить в РО, и легко использовать, не нужно никаких переменных и триггеров.
Тем не менее то что ты хочешь вполне легко сделать, создаешь массив такого вида:
UnitParams [ unitIndex ] [ paramName ]
в unitIndex будет число соответствующие id юнита на карте. Не помню, но вроде там даже функция есть что бы его получить. Если нет, то придется еще один массив делать, и вручную каталогизировать все юниты.
Units [ UniqueUnitLink ] = 001
Units [ UniqueUnitLink ] = 002
Пример:
Units [ __Морпех (25,19)__ ] = 1
Units [ __Гидралиск (4,25)__ ] = 2
..
Затем событие Юнит атакован или любое другое. Подставляешь Triggering Unit в твой массив Units и получаешь его id (согласно твоему каталогу), а уже используя этот id можешь из первого массива достать или изменить любой параметр. А если id не нужны, то просто храни ссылки на объекты в массиве параметров. Или используй custom value. Но лучше всего стандартные здоровье и атаку.
Ну и да, собственно, не понимаю я что мешает просто брать HP юнита напрямую вместо того чтобы записывать каждое изменение в переменную?
Я пытался так сделать изначально, но не смог, пришлось обходными путями идти.
Вот строка:
libNtve_gf_CreateDialogItemLabel(DialogLastCreated(), 200, 100, c_anchorCenter, 0, 0, StringExternal("Param/Value/740E5475"), ColorWithAlpha(0,0,0,0), false, 2.0);
Так же мелькала 1017 строка:
gv_hPJangles += EventUnitPropertyChangeInt();
И, чего дальше? Я в этом мало чего понимаю. Но это строки из другого триггера, который отвечает за конкретного юнита. prog, работает! Это был конфликт между двумя триггерами (тем, который я выложил, и тем, который я упомянул выше). После установки во втором триггере условия, чтоб не срабатывал, когда не надо (он на конкретного юнита забит, а юнита на момент срабатывания в переменной нет).
Короче, УРА!
Но ведь сами по себе ошибки не происходят.
Причина подобного это А) - невнимательность либо твоя либо автора В) - программное обеспечение
Что бы в дальнейшем все было окей, просто сначала потести карту полностью что бы знать что и как должно быть, а потом вноси изменения, будь внимательней.
Еще советую связаться с автором и поговорить с ним об этой проблеме, или запросить у него еще 1 исходник да бы сверЯться с ним.
pro100master, По логике, должно быть так, задание по оформлению главной страницы проекта я выполнил, надо его принять, дать мне второй уровень, и смогу добавлять ресурсы в проект и начну набивать их контентом, наконец. Чего я жду уже - две недели.
Всё, вопрос закрыт, работы на сайте снова начались.
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
действие проиграть звук и указываешь твою фразу
выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
Потому что вы блокируете мультишот. Запрет спеллбука не запрещает способности, находящиеся в нем. Но запрет самих способностей, внезапно, запрещает их.
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
действие проиграть звук и указываешь твою фразу
выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
Потому что вы блокируете мультишот. Запрет спеллбука не запрещает способности, находящиеся в нем. Но запрет самих способностей, внезапно, запрещает их.
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
действие проиграть звук и указываешь твою фразу
выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
Если во всех картах одинаковый id, значит покопайся в хеше.
Это как, можно в личку?
Проблему решил, переделав стандартную способность, а не создавая нестандартную. Это почти что панацея от подобных случаев, когда id (ещё называют raw-code) способности меняется.
Анимация текстуры. Через сдвиг или замену. Максимум, какую текстуру тянет Вар - 512 на 512. Чтобы не потерять в качестве, сделай несколько таких текстур и меняй их в нужных кадрах в настройке материала.
можно либо заменять юнита, либо химичить с тексттагами(то есть сделать систему имен игровых обьектов на тексттагах), ещё есть функция для смены имени игрока
код
native SetPlayerName takes player whichPlayer, string name returns nothing
предметам имена изменять нельзя
способности могут быть с таким же успехом удалены, добавлены
этим
native UnitAddAbility takes unit whichUnit, integer abilityId returns boolean
native UnitRemoveAbility takes unit whichUnit, integer abilityId returns boolean
подробнее насчет предметов, думаю можно похимичить с кастом велью, устанавливать его
native S2I takes string s returns integer
native I2S takes integer i returns string
конвертировать, потом выводить строки на экран через
это
native DisplayTextToPlayer takes player toPlayer, real x, real y, string message returns nothing
с таким же успехом можно использовать хеш-таблицы, для аттача описания к чему-либо.
Ещё есть вариант, с описанием предметов и способностей в квестах.
В общем без гемора, и написания левых систем никак)
100500 раз уже спрашивалось. Заменяй кириллические символы на похожую латиницу. Если лень исправлять блокнотом - могу скинуть war3rainbow, там есть функция автозамены на латин.
Уровень = Уровню героя. Характеристики = Характеристикам героя. Цикл 6-разовый на каждый слот дающий предмет герою. Уровни способностей равные уровню способностей героя. Героя, в смысле твоего героя. Ну еще создать юнита типа твоего героя. Что-то еще? Если он где-то в переменных для пассивок, то с ними тоже по колдовать и все.
Будет только одна проблема, если ты книги атаки на его юзал то их никак не засеч без геморроя. А так все в виде целочисленных на твоем герое записано.
McLaren0109:
Держи, всё работает на ура
851976 - id приказа на отмену тренировки юнита
6 раз - это для того, чтобы когда например: у тебя ограничение в 3 юнита, двоих ты уже построил, потом нажал 7 раз строить пехотинцев, оно строит третьего, четвёртого отменяет, но продолжает строить остальных 5. Итого 6 раз отдаём приказ отмены.
Custom, Никак, HeroAbilityList низя править во время игры, делайте несколько героев с разными наборами скиллов на изучение, а потом морфите.
Как правильно морфить можно найти инфу тут.
Перед морфом желательно убирать все предметы из инвентаря.
Кривоватая подгрузка, удалять не обязательно. Лучше юзать preload без этаких костылей, темболее в JASS есть механизмы автоматического создания pld скриптов.
Таких багов много, почему то оптимизатор берет данные из слк таблиц игры на часть объектов, пробуй wc3ultimate opt, на хайве выложена... Мб кто уже и новый виджитайзер запилил.
nvc123, ну так потому я и подписался как Кэп. Просто тема почему-то до сих пор не закрыта, вот я и подумал, что твой ответ не понятен. Ибо, уложить такую формулировку в одно слово - это, конечно, мастерство :)
ну если анимация получения денег настолько важна, то мой вариант может и не подходит. nvc123:
а как определить награду за убийство
ну способов много, например ввести переменную, которая будет хранить количество золота игрока и при получении золота - будет меняться. Таким образом награду можно будет вычислить вычетом "текущее значение" золота минус "предыдущее".
Есть функция Add resuorce, так что убери Set resource.
Ты pick'аешь всех, даже самого убийцу. Решения: исключай в цикле действия "Отряд" в условиях убийцу или давай убийце половину награды в начале триггера.
Я знаю что это координаты умник.. пустые придирки не прокатят
я не только про координаты, я про всё
короче судя по всему ты пытаешься написать прогу которая бы думала вместо тебя
и это очень пичально
поэтому я просто оставлю это здесь
Что за бред в смеси с попрошайничеством?
GroupEnumUnitsInRange - в этой функции сразу все понятно, стоит почитать названия аргументов (да и само название функции переведите).
В game.dll в виде машинных кодов....
Все дефолтные спеллы в варе описаны в движке, каждый уникален и так далее.
Баффы по своей структуре похожи на триггеры из jass но имеют доступ ко всем событиям и действиям, которых нет в JASS. К примеру - Юнит успешно завершил атаку, Юнит потратил ману на способность...
Цепи молний делаются триггерно,благо это сравнительно просто, ищем юнитов и рисуем между 6ими молнии, попутно делая все что надо, где то в барахолке есть fade bolt руббика из доты, это цепь молний которая отнимает атаку у врагов которых она ударила
Собственные попытки в студию, что не получается?
Напомним - ЭТО НЕ СТОЛ ЗАКАЗОВ, здесь задают вопросы про реализацию тех или иных вопросов, спрашивают про ошибки, оптмизацию, отдельные функции. Я не увидел в вашем вопросе ничего кроме невнятного описания механики способности, " вокргу кого то там огненные столбы возникают, и еще порча"...
Filius Dei, во вредные советы подъехали...
Русификатор очень поможет тем кто собрался ломануть чужую карту и сделать её мод, прям ваще жир...
Потом нубам вроде сударя не стоит бежать ломать чужую карту, чето там пытатся копировать - это все бесполезно, недавно был похожий вопрос - помогите взломать карту за вознаграждение, карту сломали - ну а дальше что? Он неспособен ничего сделать потому что просто не понимает как?
Играя в некую карту вы мните себя великими балансерами и картоделами, мол да чё там, шяс подправлю пару значений и все будет норм - нет не будет, это не так просто как может показаться, без понимания устройства карты и знания Jass вам нечего там делать, вы тупо ничего не сможете изменить, да даже скопировать и вставить!
Помните что без труда не выловишь и рыбку из пруда, т.е изи способов в 1 кнопку взять и запилить чужую карту так как вам хочется или вдруг стащить всех героев себе в карту нет, а уж теболее не случится так что вам кто то возьмет и все это сделает вам за спасибо...
Как объединить зелья лечения в одно с зарядом, если герой имеет одно в инвентаре и поднимает второе?
обычно используют "событие - юнит получает предмет", И на предмет, который вы получаете, ссылается переменная, которая называется item being manipulated. А юнит, который получает итем - Triggering Unit. Вы можете с помощью этой переменной итема узнать тип, сравнить. Потом циклом пробегаете по слотам (от 1 до 6), тут вся суть в одной команде триггерной (item in slot X, итем в слоте Х) и проверяете есть ли такой же итем (не забываем делать проверки, на то что этот предмет не равен item being manipulated и сравниваете не одинаковые ли типы). Если есть такой же (находите тот же тип что и item being manipulated), то от item being manipulated берете заряды и прибавляете к зарядам существующего, а потом item being manipulated удаляете. Недостаток: при заполненном инвентаре такая штука не будет работать.Не хватает свободного места.
код
цикл А от 1 до 6
if тип итема (item being manipulated) РАВНО тип итема (item in slot А) and item being manipulated НЕ РАВНО item in slot А then проверяете
set k = Charges remaining in ( item being manipulated) + Charges remaining in ( item in slot А) складываете заряды
Set charges remaining in ( item in slot А) to ( k) устанавливаете кол-во зарядов
Remove Item (item being manipulated) удаляете
endif
Есть гуишная проверка на наличие итема определенного типа в инвентаре, но она утечна. И лучше циклом прогонять.
Кстати выше пример, там вот дропают итем, зачем? чтобы проверить есть ли такой же итем. А то мб проверка на наличие итема определенного типа в инвентаре найти подобранный итем. А нам нужно знать, что есть еще один, кроме подобранного. Поэтому дропают. Только не понятно зачем создаете новый итем.
Проверка, на то что подобранный предмет имеет зарядов больше 0, говорит нам о том что это не обычный предмет.
есть статьи
Как зелье с зарядом разделить, если игрок перекладывает зелье с зарядом в другую ячейку инвентаря, если возможно, то разделение происходить должно только при нажатии какой-то клавиши?
можно перекладывать в другой слот. для этого ловят приказ. Короче смотрите системы CCS
там создают новый такой же предмет, и выделяют кол-во зарядов, деля поровну например. Абилкой например, попробуй сделать целевую активную абилку с целью предмет, указывай на инвентарь и дели.
Как это можно сделать покороче для множества разных типов предметов?
всмысле покороче? сделать под одну группу? есть же классификация. Я вот делаю так, что все предметы, которые с зарядами, должны иметь классификацию "с зарядами". Не помню точно как называется класс итемов.
Как правильно реализовать в инвентаре 7 слот?
если у героя заполнен инвентарь, то он может подобрать руну. Вот в доте система скрещивания. То же самое можно сделать и с зарядами. На земле у него лежат руны, при подборе руна исчезает. Но мы проверяем слоты, есть ли такой итем. Если есть, прибавляем заряды к существующему. Иначе создать новый. При дропе итема, оригинал подменяет снова на руну. В руну можно передать значения зарядов.
А также ограничения какие-то на количество зарядов нужно ставить или сама система выше какой-то планки не даст собирать?
до такого не доходил.
скинул примеры (хотя многие дурацкие, но делал здесь хгм в качестве ответов)
вот еще одна система hh
1.(см. картинку) Это я так понял ячейки инвентаря, но integer означает целое число, я много раз пользовался целочисленными переменными. Как игра понимает что это относится к ячейкам инвентаря если в описании вовсе нет слов про предметы или заряды.
во-первых, есть у нас событие "юнит получает предмет". Есть переменные: Герой манипулирующим итемом, и манипулирующий итем. Не знаю откуда ты взял эту систему, но она очень сложная, я сразу не врубился. Можно в разы проще сделать. И увидел недостатки: типа складывает все итемы к юниту, а не подобранный прибавляется к имеющему. Это так задумывалось? во-вторых, циклы-то понимаешь? Там есть функция "Итем в слоте таком-то", которая вернет итем. То есть когда ты циклом (А) пробегаешь первый шаг, ты сравниваешь итем в первом слоте с итемами, находящих в других ячейках (А+В). Во втором шаге итем во-втором, в третьем в третьем слоте и так далее. Итак 5 шагов
(см. картинку) То же самое непонятное условие с нулём, ведь система как раз складывает предметы с зарядами, а судя по условию не должна этого делать.
В Custom Value - хранит целое число, можно записать через триггеры любое дополнительное целое значение. Это есть у юнитов, и у предметов. Также можно с помощью триггеров узнать значение, сравнить и др. С этим можно делать разные хитрости (например 0 - нет, 1 - да. Пример, как узнать, что предмет кому-то принадлежит.: 0 - никому, 1 - красному, 2 - синему и др. Это как пример. Что означает в твоем примере CV = 0 я не знаю. Это системное что-то. Но Maniac_91 прав изначально равно нулю
Но тут нет ответа на вопрос куда что вставить чтоб ограничить заряды, или типы стакающихся предметов.
сравнением. Вставь внутрь второго цикла. Например, Если (заряды итема 1 + заряды итема 2) < 5, то делать действия, иначе ничего не делать. Но если у тебя много итемов, и у них разные ограничения, то нужна база данных
И почему от 1-до 5 значения если ячеек 6 там на одной из развилок в условиях указывается меньше 6-же и герои имеют 6 слотов.
потому что нумерация идет от 0 до 5. 0 - первый слот, 1 - второй слот, и др Если не ошибаюсь. Если честно ты кажись прав, просто не помню как в гуи должно. надо раскрыть гуи-щные функции и посмотреть. Как я вижу это задумка автора, во втором цикле номера ячеек складываются (А+В)
» WarCraft 3 / Мемхак (помощь)
» WarCraft 3 / Округление real переменных
» WarCraft 3 / урон в процентах
» WarCraft 3 / Что выгоднее?
» WarCraft 3 / Вопрос по текстурам земли
» WarCraft 3 / В чем сейчас актуально делать карты?
» WarCraft 3 / Исправление анимации модели
» WarCraft 3 / Переменные и юниты
» StarCraft 2 / Юниты.
» WarCraft 3 / Вопросы по созданию кампании.
» Администрация XGM / Не утверждается проект
» WarCraft 3 / Мультишот
» WarCraft 3 / Мультишот
» WarCraft 3 / Как сделать эту способность триггерами?
» WarCraft 3 / Главное меню
» WarCraft 3 / Описание предмета
» WarCraft 3 / Вопрос по читам Варика
» WarCraft 3 / Ограничение на количество войск и зданий.
» WarCraft 3 / Добавление Abiliti Кто научит заплачу
» WarCraft 3 / Тренировка нескольких юнитов
» WarCraft 3 / Награда за убийство
» WarCraft 3 / Jass код
» WarCraft 3 / Триггеры
» WarCraft 3 / Ограничение зарядов